Information processing apparatus, control method, and storage medium

ABSTRACT

An information processing apparatus is provided that includes a selecting unit configured to select a file to be printed; a storage unit configured to store a rendering method as a previous value, which is determined from two methods; a first determining unit configured to determine whether or not the file is in a specific format; a second determining unit configured to determine whether or not there is a previous value if the first determining unit determines that the file is in a specific format; and a deciding unit configured to decide the rendering method for the file to be the first method if the first determining unit determines that the file is not in the specific format, and decide the rendering method for the file to be a rendering method of the previous value if the second determining unit determines that there is a previous value.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The invention relates to an information processing apparatus, inparticular, an information processing apparatus that performs switchinga rendering method from a mobile terminal.

2. Description of the Related Art

In recent years, there is a technique for printing for a printercommunicating with a mobile terminal from an application for printing inthe mobile terminal such as a smart phone (hereinafter, simply referredto as “the mobile terminal”). In this case, a processing for rendering afile, an image, and the like, which are to be printed, is required inthe process of printing from the mobile terminal. Japanese PatentLaid-Open No. 2013-77141 discloses a technique in which a processingserver is prepared separately from the mobile terminal and theprocessing server performs the rendering processing and a RIP (RasterImage Processer) processing.

SUMMARY OF THE INVENTION

if the printer performs printing from the mobile terminal, the dataformats that can be handled are often limited. For example, if the dataformat is BPM, PNG, and the like, which are commonly used in the mobileterminal, the function of an operating system (hereinafter, refer to as“OS”) in the mobile terminal can perform rendering. However, a printapplication must provide a rendering engine for data format other thanthose formats. Note that the data format by which the rendering enginecan perform rendering is also limited, and the data format by which theprinting can be performed is limited. Accordingly, a method forrendering a variety of data formats to the image data having a generalpurpose performance such as JPEG or BMP, converting the rendered imagedata to PDL data, and printing the PDL data is widely used. However,since a user cannot determine a specification and a limitation of therendering engine, there is a possibility that an inappropriate renderingengine will be used.

The invention provides an information processing apparatus that canautomatically switch a rendering engine in accordance with a format of afile to be printed if there are a plurality of rendering engines forprinting from a mobile terminal.

According to the invention, an information processing apparatus isprovided that includes a selecting unit configured to select a file tobe printed; a storage unit configured to store a rendering method as aprevious value, which is determined by two methods: a first method forrendering the file in a server and a second method for rendering thefile in the information processing apparatus; a first determining unitconfigured to determine whether or not the file is in a specific format;a second determining unit configured to determine whether or not thereis the previous value stored by the storage unit if the firstdetermining unit determines that the file is in a specific format; and adeciding unit configured to decide the rendering method for the file tobe the first method if the first determining unit determines that thefile is not in the specific format, and decide the rendering method forthe file to be a rendering method of the previous value if the seconddetermining unit determines that there is a previous value.

According to the invention, an information processing apparatus can beprovided that can switch automatically a rendering engine in accordancewith a format of a file to be printed if there are a plurality ofrendering engines for printing from a mobile terminal. In addition, therendering engine is switched automatically in accordance with a functionthat is supported, and thus the user can perform efficient printing.

Further features of the present invention will become apparent from thefollowing description of exemplary embodiments with reference to theattached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating a hardware configuration of amobile terminal.

FIG. 2 is a diagram illustrating an entire system including the mobileterminal and peripheral devices.

FIG. 3 is a diagram illustrating a software configuration of the mobileterminal.

FIG. 4 is a flow chart illustrating a printing processing by a printingapplication.

FIG. 5 is a flow chart illustrating processing for a list displaying thefiles to be printed.

FIG. 6 is a flow chart illustrating processing for deciding a renderingmethod.

FIG. 7 is a flow chart illustrating processing for displaying an icon ofthe rendering method.

FIG. 8 is a flow chart illustrating processing for rendering the file tobe printed.

FIG. 9 is a flow chart illustrating processing for changing therendering method.

FIG. 10 is a diagram illustrating an example of a UI of a list to beprinted.

FIG. 11 is a diagram illustrating an example of a UI of the icon forrendering in the terminal.

FIG. 12 is a diagram illustrating an example of a UI of the icon forrendering in a cloud.

FIG. 13 is a diagram illustrating an example of a UI of a messageindicating recoverable error.

FIG. 14 is a diagram illustrating an example of a UI of a messageindicating unrecoverable error.

FIG. 15 is a diagram illustrating an example of a UI of a renderingresult.

FIG. 16 is a diagram illustrating an example of a UI of a print setting.

FIG. 17 is a diagram illustrating an example of a UI of a setting of therendering method.

FIG. 18 is a flow chart illustrating processing for deciding therendering method.

FIG. 19 is a flow chart illustrating processing for changing therendering method.

FIG. 20 is a diagram illustrating an example of a UI of the printingapplication in the mobile terminal.

DESCRIPTION OF THE EMBODIMENTS

Hereinafter, preferred embodiments of the invention will be describedwith reference to the drawings.

First Embodiment

FIG. 1 is a block diagram illustrating a hardware configuration of amobile terminal according to the present embodiment. Each of thecomponents of the hardware in the mobile terminal 101 is respectivelyconnected to a system bus 102. The mobile terminal 101 can use a varietyof services accessible to a wireless network that a wireless LAN and anoutdoor mobile communication carrier (hereinafter, referred to as “themobile carrier”) provide. Note that the mobile terminal may be aninformation processing apparatus for mobile such as a smart phone. Anapplication for controlling an operating system (OS), a call, a datacommunication, and the like is stored in a ROM 104, and each applicationis executed in a CPU (Central Processing Unit) 103. For example, theapplication for controlling a data communication is a Mail software, aWeb browser, and the like.

A RAM 105 functions as a work memory area for executing a program. Also,the RAM 105 functions as a memory for temporarily storing Web page dataobtained by the Web browser from the Web server, authenticationinformation for accessing a Web service, and the like. A storage device110 is a nonvolatile storage device and stores various operation modesettings that are required to retain after restarting the mobileterminal, an operating log, and the like.

A Network Controller 106 performs communication control of a wirelessLAN communication unit 112 and a cellular data communication unit 113for joining the network provided by the cellular carrier. In general,when the mobile terminal joins the wireless LAN network, the NetworkController 106 prioritizes the wireless LAN connection. If the mobileterminalis out of the network area of the wireless LAN, the mobileterminal joins the wireless communication network provided by the mobilecarrier. A voice control unit 107 is primarily started by a callapplication and is used while the user is making a phone call. When theuser makes the phone call, an input and output of voice data isperformed by a microphone-speaker 114.

A display control unit 108 controls information output by a display 115of the mobile terminal 101. An input control unit 109 controlsinformation for which instructions are provided by the user using abutton, a touch panel 116, or the like of the mobile terminal. Eachapplication in the mobile terminal provides network communicationinformation, various information about the mobile terminal, and the likeusing the voice control unit 107, the display control unit 108, and theinput control unit 109. A position detection control unit 111 obtainsposition information of the mobile terminal from a GPS sensor 117 andprovides the position information to the OS. These controls arecontrolled by the OS running on CPU 103.

FIG. 2 is a diagram illustrating an entire system including the mobileterminal and peripheral devices. The system according to the presentembodiment comprises the mobile terminal 101, a wireless LAN terminal201, a Web server 202, a printer 203, a wireless base station 204, andan internet 205. The wireless LAN terminal 201 is a base unit of thewireless LAN having a common network router function and provides thewireless LAN within, for example, home or office. If the mobile terminal101 enters the wireless LAN area, the mobile terminal 101 automaticallyjoins the network using the authentication information that has been setin advance. The printer 203 joins the network via the wired or wirelessLAN.

The wireless terminal 201 is accessible to all of the peripheral devicesand the services which join the network. The wireless base station 204is a base station of a wireless communication provided by the mobilecarriers. If the mobile terminal 101 goes out of the area of thewireless LAN 201, the mobile terminal 101 joins the network provided bythe wireless base station 204. The mobile terminal 101 accesses theinternet 205 via the network provided by the wireless base station 204,and further accesses the Web server 202. A URL of the Web server 202 isset in a print application 304 (described below), and the user is notinvolved in how the Web server 202 is operated. Note that a printinstruction to the printer 203 via the print application is executed bycloud printing.

FIG. 3 is a diagram illustrating a software configuration of the mobileterminal. In the present embodiment, the print application 304 isinstalled in the OS (operating system) 303 of the mobile terminal 101,and the print application 304 performs the processing using the CPU 103.In order to communicate with the Web server and the printer 203 from theprint application 304, the network controller 106 controlled by the OS303 is used. The print application 304 comprises a rendering unit 306configured to perform rendering and a printer driver unit 307 configuredto perform print processing. The print application 304 converts theimage data rendered by the printer driver 307 to the PDL and performsthe print instruction to the printer 305 via the OS 303. Note that thePDL is a dedicated language for communication and print with the printer305.

FIG. 4 is a flow chart illustrating print processing by the printapplication 304. The flow chart shown in FIG. 4 is performed by themobile terminal 101 and the printer 203 shown in FIG. 3. The processingof the print application 304 is performed by the information processingapparatus, which is the mobile terminal 101. The mobile terminal 101shown in FIG. 1 stores a program code of software for realizing the flowchart in the storage medium. The system or the CPU 103 of the devicereads out the program code stored in the RAM 105 or the storage device110 and performs each processing of the flow chart. The processing iscommon in the flowchart of later.

Firstly, in step S401, the print application 304 searches for the fileto be printed in the mobile terminal 101. Note that the details of thisprocessing will be described below with reference to FIG. 5. Next, instep S402, the user selects a file among the displayed files. Next, instep S403, the print application 304 determines whether or not theselected file is image data. Note that the image data used in thepresent embodiment is in the JPEG format. However, it is not limited tothe JPEG format, and an image file format (for example, BMP, PNG, or thelike) with which the OS 303 can perform rendering may be adopted.

If it is determined that the selected file is image data (Yes) in stepS403, the processing proceeds to step S409, and the print application304 waits the print instruction by the user. In contrast, if it isdetermined that the selected file is not the image data (NO), theprocessing proceeds to step S404, and the decision about the renderingmethod is performed. This processing will be described below. In thepresent embodiment, the file that is not image data indicates a PDF fileand a document file. Next, in step S405, an icon of a print preview UIand the rendering method is displayed. The processing for changing thedisplay of this icon of the print preview UI and the rendering methodwill be described below with reference to FIG. 7.

Next, in step S406, the print application 304 performs an imagerendering of the selected file to be printed. This processing of theimage rendering will be described below with reference to FIG. 8. Next,in step S407, the print application 304 determines whether or not theimage rendering has completed. If the image rendering has not completed(NO), the print processing ends because the printing cannot beperformed. In contrast, if the image rendering is completed (YES), theprocessing proceeds to step S408.

Then, in step S408, the print application 304 stores (saves) therendering method used in step S406 as a previous value, and theprocessing proceeds to step S409. Next, in step S409, the printapplication 304 waits for the print instruction by the user, and whenthe print application 304 receives the print instruction, the processingproceeds to step S410. Then, in step S410, the printer driver unit 307converts the image data into PDL data. Next, in step S411, the printapplication 304 sends the PDL data generated by the printer driver unit307 to the printer 203, and the printer 203 performs the printing. Notethat, in the present embodiment, the communication with the printer 203is performed via the OS 303. As described above, the print processing ofthe print application 304 is completed.

FIG. 5 is a flow chart illustrating the details of the processing(selecting unit) for searching for the file to be printed and listdisplaying the file in step S401 of the flow chart shown in FIG. 4.Firstly, in step S501, the print application 304 determines whether thedata of the user to be printed is image data or document data. Documentdata denotes the PDF data or the document data. If the data is imagedata (image), the processing proceeds to step S507. If the data isdocument data (document), the processing proceeds to step S502.

Next, in step S507, the print application 304 acquires a printable fileextension list of the image data. Here, the extension is a string foridentifying the file type attached to the end of the file name definedin the OS 303. In the present embodiment, the extension list acquired instep S507 is for example, “jpeg”, “jpg”, “bmp”, or the like. Next, instep S508, the print application 304 searches for the file described inthe extension list acquired in step S507 within the mobile terminal 101,and creates the list. Then, the processing proceeds to step S511, andthe print application 304 displays the list on the UI.

In contrast, if the data is the document data in step S501, in stepS502, the print application 304 acquires a printable file extension listof the document data. Here, the extension is the string for identifyingthe file type attached to the end of the file name defined in the OS303. In the present embodiment, the extension list acquired in step S502is for example, “pdf”, “doc”, “ppt”, or the like.

Next, in step S503, the print application 304 searches for the filedescribed in the extension list acquired in step S502 within the mobileterminal 101, and creates the list. Next, in step S504, the printapplication 304 checks the file of the list acquired in step S503, anddetermines whether or not the extension is the “pdf”. Note that, in thepresent embodiment, the list has one or more files, and they are checkedsequentially.

If it is determined that the extension is not “pdf” in step S504 (NO),the processing proceeds to step S510. In contrast, if it is determinedthat the extension is “pdf” in step S504 (YES), the processing proceedsto step S505. Then, in step S505, the print application 304 reads outthe leading eight bytes of the file that has been determined to by“pdf”. This is because it is understood exactly whether or the file is aPDF file by reading out the leading eight bytes in the structure of thePDF data.

Then, in step S506, the print application 304 determines whether or notidentification information indicating the PDF file is included in theleading eight bytes. This is because the PDF format is widely used andthere area few files such as a corrupted file or the a file that doesnot follow the official format. Therefore, the print application 304reads out the leading eight bytes in step S505 and strictly determineswhether or not the file is a PDF file. If it is determined that the fileis a PDF file in step S506 (YES), the processing proceeds to step S510.In contrast, it is determined that the file is not a PDF file in stepS506 (NO), the processing proceeds to step S509. In step S509, the printapplication 304 deletes the file from the list.

Next, in step S510, it is determined whether or not the check for allfiles of the list has finished. If it is determined that the check forall files has not finished (NO), the processing returns to step S504,and the print application 304 checks next file. In contrast, if it isdetermined that the check for all files has finished (YES), theprocessing proceeds to step S511. In step S511, the print application304 displays the list on the UI.

FIG. 6 is a flow chart illustrating the details of the processing fordeciding the rendering method in step S404 shown in FIG. 4. In thepresent embodiment, the rendering method includes at least a cloudmethod (a cloud rendering; a first method), in which the rendering isperformed on the server (the cloud), and a terminal method (a terminalrendering; a second method), in which the rendering is performed on themobile terminal (the information processing apparatus) 101. Also therendering method is not limited to these methods, and another method maybe adopted. Firstly, in step S601, the print application 304 discernsthe file type selected by the user. More specifically, the printapplication 304 discerns the file type by using the extension. Next, instep S602, it is determined whether or not the file type is PDF file (afirst determining unit). If it is determined that the file type is a PDFfile (YES), the processing proceeds to step S603. If it is determinedthat the file type is not a PDF file (NO), that is, if the file type isa document file, processing proceeds to step S607.

Then, in step S607, the print application 304 decides the renderingmethod of the document file which is not the PDF file to the cloudmethod. This method is a method for rendering by using the Web server202 shown in FIG. 3. That is, since the rendering of the document fileis not performed by the rendering unit 306, the rendering is performedby using the cloud method. Therefore, since there is a constraint on thefile formats that the rendering unit 306 can handle and the renderingunit 306 cannot perform the rendering for all file formats, theapplicable rendering is required.

Next, in step S603, the print application 304 acquires the renderingmethod retained by the print application 304. This is a value stored inthe processing in step S408. Next, in step S604, the print application304 determines whether or not the rendering method has been acquired (asecond determining unit). That is, the print application 304 determineswhether or not the previous value has been retained. If the renderingmethod has not been acquired (NO), that is, if the previous value hasnot been retained such as during an initial startup, the processingproceeds to step S605. Then, in step S605, the print application 304decides that the rendering method is the terminal method. Here, theterminal method is a method in which the rendering is performed in themobile terminal 101, and the rendering unit 306 of the print application304 performs the rendering. In contrast, if the rendering method isacquired in step S604 (YES), the processing proceeds to step S606. Then,in step S606, the print application 304 decides that the renderingmethod is the acquired method. That is, the print application 304decides that the rendering method is either the terminal rendering orthe cloud rendering. As described above, the processing for deciding therendering method ends.

FIG. 7 is a flow chart illustrating the details of the processing fordisplaying an icon of the print preview UI and the rendering method instep S405 of the flow chart shown in FIG. 4. Firstly, in step S701, theprint application 304 acquires the rendering method decided in the flowchart shown in FIG. 6. Next, in step S702, the print application 304determines whether the acquired rendering method is the cloud renderingor the terminal rendering. If the acquired rendering method is theterminal rendering, the processing proceeds to step S703. Then, in stepS703, the print application 304 decides to use the icon for the terminalrendering as the icon for the rendering of the print application 304. Incontrast, if the acquired rendering method is the cloud rendering, theprocessing proceeds to step S706. Then, in step S706, the printapplication 304 decides to use the icon for the cloud rendering as theicon for the rendering of the print application 304. Next, in step S704,the print application 304 displays the print preview UI. Then, in stepS705, the print application 304 displays the icon of the renderingmethod that has been decided in step S703 or step S706. Note that theprocessing in step S704 and the processing in step S705 may besimultaneously executed. By the above processing, the print preview UIaccording to the selected rendering method is displayed on the printapplication 304.

FIG. 8 is a flow chart illustrating details of the processing forrendering the file to be printed in step S406 of the flow chart shown inFIG. 4. Firstly, in step S801, the print application 304 detects apreview display instruction from the print preview UI by the userpressing the preview button. Note that, in the present embodiment, asthis preview button is triggered, the rendering processing of the printapplication 304 is executed. However, the rendering processing may beautomatically executed by means of a unit other than the preview button.

Next, in step S802, the print application 304 acquires the renderingmethod, and determines whether the acquired rendering method is thecloud rendering or the terminal rendering in step S803. If the acquiredrendering method is the terminal rendering (terminal), the processingproceeds to step S804. Then, in step S804, the print application 304starts the image rendering in the terminal. Next, in step S805, theprint application 304 determines whether or not an error occurs duringthe rendering processing. If any error has occurred during rendering(YES), the processing proceeds to step S806. In step S806, the printapplication 304 stops the rendering and the processing proceeds to stepS807. Next, in step S807, the print application 304 determines whetheror not the error occurred during rendering is a recoverable error. Here,unrecoverable errors are various types of errors, for example, an errorin which the function is included that is not supported in the PDF file.Recoverable errors are various types of errors, for example, an error inwhich temporary work memory area is insufficient.

If the error is a recoverable error (YES), the processing proceeds tostep S808. In step S808, the print application 304 displays a messageindicating the error is a recoverable error with an error notification,and the processing proceeds to step S810. In contrast, if the error isan unrecoverable error (NO), the processing proceeds to step S809. Instep S809, the print application 304 displays a message indicating theerror is an unrecoverable error with an error notification, and theprocessing proceeds to step S810. Then, in step S810, the printapplication 304 displays the print preview UI by returning to the stateprior to rendering, and the processing ends. If the acquired renderingmethod is the cloud rendering in step S803 (cloud), the processingproceeds to step S811. Then, in step S811, the print application 304performs the image rendering using the cloud server. Next, in step S812,the print application 304 determines whether or not the error occursduring the rendering processing. If any error has occurred duringrendering (YES), the processing proceeds to step S815. In step S815, theprint application 304 stops the rendering and the processing proceeds tostep S816. Next, in step S816, the print application 304 displays theprint preview UI by returning to the state prior to rendering, and theprocessing ends.

If no error occurs during rendering (NO) in step S805 or step S812, thatis, the rendering is successfully completed, the processing proceeds tostep S813. Then, in step S813, the print application 304 stores thegenerated image file (in the present embodiment, a JPEG file) for whichthe rendering has been completed in the print application 304. Next, instep S814, the print application 304 displays the rendering result onthe print preview UI, and the processing ends. By the above processing,the print application 304 selects the rendering method according to theselected file, and performs the rendering according to the instructionof the user.

FIG. 9 is a flow chart illustrates the processing for changing therendering method by the user instruction of the print application 304.The processing is started by pressing the button for changing the printsetting on the print preview UI of the print application 304 whiledisplaying the print preview UI. Since the processing is an interruptinstruction by the user, the processing may be optionally performedafter step S405 of the flow chart shown in FIG. 4.

Firstly, in step S901, the print application 304 receives a displayrequest for a print setting item from the user. Next, in step S902, theprint application 304 determines whether or not the selected file is thePDF file. If the selected file is the PDF file (YES), the processingproceeds to step S903. In contrast, if the selected file is not a PDFfile (NO), the processing proceeds to step S907. Since the renderingmethod cannot be switched if the file is not the PDF file, in step S907,the print application 304 does not display the item for changing therendering method on the print setting screen. In this manner, the usercannot optionally switch the rendering method. Therefore, the processingends.

Next, in step S903, the print application 304 displays the item forchanging the rendering method on the print setting screen. Then, in stepS904, the print application 304 detects the operation of the user forswitching the rendering method, and in step S905, the print application304 stores the selected rendering method. Next, in step S906, thechanging of the icon of the rendering method is performed. The changingmethod for the icon is the processing of the flow chart shown in FIG. 7.

FIG. 10 is a diagram illustrating an example of the UI of the printapplication 304 of the mobile terminal 101. A UI 1001 of the printapplication 304 is displayed on the display 115 via the display controlunit 108 in FIG. 1. A file list display unit 1002 is a list of the filesto be printed that is displayed by the print application 304 in stepS511 of the flow chart shown in FIG. 5. Therefore, the file in themobile terminal 101 is displayed as a list. Note that the filesdisplayed in the list are variable due to the processing in step S501 orS502.

FIG. 11 is a diagram illustrating an example of the UI of the printapplication 304 of the mobile terminal. FIG. 11 is the same printpreview UI of the print application 304 as the UI in FIG. 10. A UI 1101is displayed by the print application 304 in step S704 in FIG. 7. Therendering is started by the user pressing a preview button 1102. Theprocessing in the case where the preview button 1102 is pressed is theprocessing in step S802 in FIG. 8. A print setting screen shown in FIG.16 (described below) is displayed by the user pressing a print settingbutton 1103. The processing in the case where the print setting button1103 is pressed is the processing in step S901 in FIG. 9. Then, theprinting is started by the user pressing a print button 1104. Theprocessing in the case where the print button 1104 is pressedcorresponds to the step S411. The image data for which the rendering hasbeen completed is displayed on a preview display area 1105. The UI 1101shown in FIG. 11 indicates the state where the rendering has not beencompleted, and an icon 1106, which is the icon indicating the renderingmethod, is displayed. The icon 1106 is the icon indicating the terminalrendering. This icon is the rendering method decided in step S703 and isdisplayed in step S705. Note that the icon of the terminal rendering isdisplayed in this figure.

FIG. 12 is a diagram illustrating an example of the UI of the printapplication of the mobile terminal. Since the UI 1201 to the displayarea 1205 are the same as the UI 1101 to the display area 1105 shown inFIG. 11, detailed descriptions thereof are omitted. The icon 1206 is theicon indicating the cloud rendering. This icon is the rendering methoddecided in step S704 and is displayed in step S705. Note that the iconof the cloud rendering is displayed in this figure.

FIG. 13 is a diagram illustrating an example of the UI of the printapplication of the mobile terminal. Since the UI 1301 to the printbutton 1304 are the same as the UI 1101 to the print button 1104 shownin FIG. 11, detailed descriptions thereof are omitted. A display area1305 is a preview display area. In this Figure, the state where therendering error has occurred in step S808 and the message indicating arecoverable error is displayed.

FIG. 14 is a diagram illustrating an example of the UI of the printapplication of the mobile terminal. Since the UI 1401 to the printbutton 1404 are the same as the UI 1101 to the print button 1104 shownin FIG. 11, detail descriptions thereof are omitted. A display area 1405is a preview display area. In this Figure, the state where the renderingerror is occurred in step S809 and the message indicating unrecoverableerror is displayed.

FIG. 15 is a diagram illustrating an example of the UI of the printapplication of the mobile terminal. Since the UI 1501 to the printbutton 1504 are the same as the UI 1101 to the print button 1104 shownin FIG. 11, detailed descriptions thereof are omitted. A display area1505 is a preview display area. In this Figure, the state where therendering has been completed in step S813 and the rendering result isdisplayed in step S814 is displayed. As described the above, thedifference between the rendering methods in FIGS. 13, 14, and 15 on theUI has been described. Next, the UI for switching the rendering methodwill be described.

FIG. 16 is a diagram illustrating an example of the UI of the printapplication of the mobile terminal. Since the UI 1601 is the same as theUI 1101 shown in FIG. 11, the detailed description thereof is omitted.The UI 1601 is displayed if the print setting button 1103 shown in FIG.11 is pressed. The operation is the processing in which the printapplication 304 receives the display request of the print setting itemby the user operation in step S901. A print setting item 1602 is a printsetting item. A button 1603 is a setting button of the preview mode. Inthe present embodiment, the setting button of the preview mode isadopted as one of the print settings, and the rendering method may beswitched by this button. If the button 1603 is pressed, the UI shown inFIG. 17 is displayed.

FIG. 17 is a diagram illustrating an example of the UI of the printapplication of the mobile terminal. Since the UI 1701 is the same as theUI 1101 shown in FIG. 11, the detailed description thereof is omitted.In the present embodiment, the UI indicates switching for two renderingmethods of a button 1702 and a button 1703. If the button 1702 ispressed, the rendering method is switched to the terminal rendering, andif the button 1703 is pressed, the rendering method is switched to thecloud rendering. The processing for switching the rendering method isthe processing in step S904.

As described the above, according to the invention, if there are aplurality of rendering engines for printing from a mobile terminal, theuse of either rendering engine is visually communicated and therendering method is automatically switched in accordance with thefunction that the rendering engine supports. With this manner, the usercan perform efficient printing.

Second Embodiment

In the first embodiment, the description in which, if there are aplurality of rendering engines for printing from a mobile terminal, theuse of either rendering engine is visually communicated and therendering method is automatically switched in accordance with thefunction that the rendering engine supports has been described. However,in fact, since the rendering may not be performed due to a limitationsuch as the characteristic and the specification of the rendering engineby switching the rendering engine according to the type of the file tobe printed, it is difficult to automatically switch. Therefore, in thepresent embodiment, the method for switching that takes intoconsideration the rendering engine limit will be described. Note that,in the present embodiment, the differences with the first embodimentwill be described, and a detailed description of the same part as thatof the first embodiment will be omitted.

FIG. 18 is a flow chart illustrating the detailed processing fordeciding the rendering method in step 5404, shown in FIG. 4, relating tothe print application 304. FIG. 18 is obtained by modifying FIG. 6 inthe first embodiment, and since step S1801 to step S1807 are same as thestep S601 to step S607, detail descriptions thereof are omitted.

After deciding the rendering method in step S1805 or step S1806, in stepS1808, the print application 304 determined whether or not the selectedPDF file has a non-supported function in the rendering method in theterminal. If the PDF file has a non-supported function (YES), theprocessing proceeds to step S1807. In step S1807, the print application304 switches the rendering method to the cloud method. In contrast, ifthe PDF file does not have the non-supported function (NO), theprocessing ends.

FIG. 19 is a flow chart illustrating the processing for changing therendering method by a user instruction of the print application 304.FIG. 19 is obtained by modifying FIG. 9 in the first embodiment, andsince step S1901 to step S1907 are same as the step S901 to step S907,detailed descriptions thereof are omitted. In the first embodiment, theprocessing is started by pressing the button for changing the printsetting from the print preview UI of the print application 304. Sincethis processing is started by an interrupt instruction of the user, theprocessing is optionally performed after step S405 in FIG. 4. Incontrast, in the present embodiment, the processing is the processing inthe state where the rendering method is changed after completing therendering in addition to this. That is, the processing is the processingin the state where the interrupt instruction of the user is performedbetween step S408 and step S409 in FIG. 4.

In step S1902, the selected file is a PDF file (YES), and the processingproceeds to step S1908. In step S1908, the print application 304displays in the UI on the print setting screen a message that therendering result is discarded. Then, in step S1905, a new renderingmethod is stored, and then in step S1909, the print application 304determines whether or not the image has been rendered. If the image hasbeen rendered (YES), the processing proceeds to step S1910. In stepS1910, the print application 304 deletes the rendered image, and theprocessing proceeds to step S1906. In contrast, if the image has notbeen rendered (NO), the processing proceeds to step S1906.

FIG. 20 is a diagram illustrating an example of the UI of the printingapplication in the mobile terminal. FIG. 20 is obtained by modifyingFIG. 16 in the first embodiment, and since the UI 2001 to the button2001 are same as the UI 1601 to the button 1603, detail descriptionsthereof are omitted. FIG. 20 illustrates the UI of the print application304 if the user instruction is performed by the processing in step S1901in FIG. 19. In the present embodiment, unlike the first embodiment, theimage has been rendered. Therefore, if the button of the print setting1503 is pressed in the state of FIG. 15, the UI in FIG. 20 is displayed.The difference between the UI in FIG. 20 and the UI in FIG. 16 is that amassage display area is added on a display area 2004. The printapplication 304 displays the message, for which the rendering result isdiscarded, on the display area 2004. Note that this is the processing instep S1908 in FIG. 19.

As described the above, in the present embodiment, the method forswitching the rendering engine in the case where the rendering cannot beperformed due to the limitation such as the characteristic and thespecification of the rendering engine has been described. With thismanner, the rendering method can be automatically switched even if thefile to be printed cannot be rendered by the rendering engine.

Other Embodiments

Embodiment(s) of the present invention can also be realized by acomputer of a system or apparatus that reads out and executes computerexecutable instructions (e.g., one or more programs) recorded on astorage medium (which may also be referred to more fully as a‘non-transitory computer-readable storage medium’) to perform thefunctions of one or more of the above-described embodiment(s) and/orthat includes one or more circuits (e.g., application specificintegrated circuit (ASIC)) for performing the functions of one or moreof the above-described embodiment(s), and by a method performed by thecomputer of the system or apparatus by, for example, reading out andexecuting the computer executable instructions from the storage mediumto perform the functions of one or more of the above-describedembodiment(s) and/or controlling the one or more circuits to perform thefunctions of one or more of the above-described embodiment(s). Thecomputer may comprise one or more processors (e.g., central processingunit (CPU), micro processing unit (MPU)) and may include a network ofseparate computers or separate processors to read out and execute thecomputer executable instructions. The computer executable instructionsmay be provided to the computer, for example, from a network or thestorage medium. The storage medium may include, for example, one or moreof a hard disk, a random-access memory (RAM), a read only memory (ROM),a storage of distributed computing systems, an optical disk (such as acompact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)™),a flash memory device, a memory card, and the like.

While the present invention has been described with reference toexemplary embodiments, it is to be understood that the invention is notlimited to the disclosed exemplary embodiments. The scope of thefollowing claims is to be accorded the broadest interpretation so as toencompass all such modifications and equivalent structures andfunctions.

This application claims the benefit of Japanese Patent Application No.2014-243745, filed Dec. 2, 2014, which is hereby incorporated byreference wherein in its entirety.

What is claimed is:
 1. An information processing apparatus, comprising:a selecting unit configured to select a file to be printed; a storageunit configured to store a rendering method as a previous value, whichis determined from two methods: a first method for rendering the file ina server and a second method for rendering the file in the informationprocessing apparatus; a first determining unit configured to determinewhether or not the file is in a specific format; a second determiningunit configured to determine whether or not there is the previous valuestored by the storage unit if the first determining unit determines thatthe file is in a specific format; and a deciding unit configured todecide the rendering method for the file to be the first method if thefirst determining unit determines that the file is not in the specificformat, and decide the rendering method for the file to be a renderingmethod of the previous value if the second determining unit determinesthat there is a previous value.
 2. The information processing apparatusaccording to claim 1, wherein the deciding unit decides the renderingmethod to be the second method if the second determining unit determinesthat there is no previous value.
 3. The information processing apparatusaccording to claim 1, further comprising: a rendering unit configured torender the file if the deciding unit decides the rendering method to bethe first method, wherein the storage unit stores the rendering methodin accordance with a result of the rendering by the rendering unit. 4.The information processing apparatus according to claim 3, wherein thestorage unit stores the rendering method if the rendering by therendering unit has completed successfully, and does not store therendering method if an error has occurred during the rendering.
 5. Theinformation processing apparatus according to claim 3, wherein, if therendering method that was decided by the deciding unit and changed by auser is received, the rendering unit renders the file in accordance withthe changed rendering method.
 6. The information processing apparatusaccording to claim 5, wherein if the file has been rendered by therendering unit when the rendering method changed by the user isreceived, the rendered file is deleted.
 7. The information processingapparatus according to claim 1, wherein the specific format is a PDFformat.
 8. A method for controlling an information processing apparatus,the method comprising: selecting a file to be printed; storing arendering method as a previous value, which is determined from twomethods: a first method for rendering the file in a server and a secondmethod for rendering the file in the information processing apparatus;first determining whether or not the file is in a specific format;second determining whether or not there is the previous value stored inthe storing if the first determining determines that the file is in aspecific format; and deciding the rendering method for the file to bethe first method if the first determining determines that the file isnot in the specific format, and decide the rendering method for the fileto be a rendering method of the previous value if the second determiningdetermines that there is a previous value.
 9. The method according toclaim 8, wherein the deciding decides the rendering method to be thesecond method if the second determining determines that there is noprevious value.
 10. The method according to claim 8, further comprising:rendering the file if the deciding decides the rendering method to bethe first method, wherein the storing stores the rendering method inaccordance with a result of the rendering in the rendering.
 11. Themethod according to claim 10, wherein the storing stores the renderingmethod if the rendering by the rendering is completed successfully, anddoes not store the rendering method if an error has occurred during therendering.
 12. The method according to claim 10, wherein, if therendering method, which is decided in the deciding, changed by a user isreceived, the rendering renders the file in accordance with the changedrendering method.
 13. The method according to claim 12, wherein if thefile has been rendered in the rendering when the rendering methodchanged by the user is received, the rendered file is deleted.
 14. Themethod according to claim 8, wherein the specific format is a PDFformat.
 15. A non-transitory storage medium storing a readable programfor causing a computer to execute a controlling method executed in aninformation processing apparatus, the method comprising: selecting afile to be printed; storing a rendering method as a previous value,which is determined from two methods: a first method for rendering thefile in a server and a second method for rendering the file in theinformation processing apparatus; first determining whether or not thefile is in a specific format; second determining whether or not there isa previous value stored in the storing if the first determiningdetermines that the file is in a specific format; and deciding therendering method for the file to be the first method if the firstdetermining determines that the file is not in the specific format, anddecide the rendering method for the file to be a rendering method of theprevious value if the second determining determines that there is aprevious value.